package io;

import java.io.*;

/**
 * java 将流分为两类
 * 节点流和处理流
 * 节点流也成为低级流  是真实链接程序与另一端的管道 读写一定是建立在节点流的基础之上的
 *   比如说文件流就是节点流
 *   处理流也称为高级流  是不能独立存在的，必须链接在其他流上  目的是当前数据流经它时对
 *   数据进行某些加工处理 简化我们的同等操作
 *   实际开发中我们经常会串联一组高级流并最终链接到低级流上 使得读写数据以流水线式的加工
 *   处理来完成 这个操作称为 流的连接。
 */
public class BosDemo {
    /**
     * 缓冲流
     * Java。io。BufferedInputStream和BufferedOutputStream
     * 缓冲流时一对高级流 作用是加快读写效率
     * @param args
     */
    public static void main(String[] args) throws IOException {
        FileInputStream fi = new FileInputStream("fa85cd37_E864745_083fe912.png");
        BufferedInputStream bi = new BufferedInputStream(fi);
        FileOutputStream ou = new FileOutputStream("fa85cd37_E864745_083fe14.png");
        BufferedOutputStream ob = new BufferedOutputStream(ou);
         int len;
         long state = System.currentTimeMillis();
         while ((len = bi.read())!=-1){
             ob.write(len);
         }
         long lin = System.currentTimeMillis();
        System.out.println("复制完毕"+(lin-state)+"ms");
        bi.close();
        ob.close();

    }
}
